package com.example.cash.craft.service;

import com.example.cash.craft.pojo.param.UserRegisterParam;
import com.example.cash.craft.pojo.vo.PageData;
import com.example.cash.craft.pojo.vo.UserVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface IUserService {

    /**
     * 用户注册
     *
     * @param param 用户注册参数对象，包含用户注册所需的信息，如用户名、密码等
     */
    void register(UserRegisterParam param);

    /**
     * 根据用户ID删除用户
     *
     * @param id 需要删除的用户ID
     */
    void deleteById(Long id);

    /**
     * 根据用户ID查询用户信息
     *
     * @param id 需要查询的用户ID
     * @return 用户信息
     */
    UserVO selectById(Long id);

    /**
     * 查询所有用户信息
     *
     * @param page 查询的页码
     * @return 用户信息列表
     */
    PageData<UserVO> listAll(Integer page);

}